/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gestionform;

import dao.exception.DAOConnectionException;
import dao.exception.DAOCoursException;
import dao.exception.DAOExamenException;
import dao.interfaces.DAOExamen;
import static gestionform.GestionAssoCours.SELECT_COURS;
import static gestionform.GestionCours.CHAMP_INTITULE;
import static gestionform.GestionCours.SELECT_NOM_COURS;
import static gestionform.GestionInfos.getValeurChamp;
import java.util.ArrayList;
import java.util.Arrays;
import javax.servlet.http.HttpServletRequest;
import model.Examen;

/**
 *
 * @author Paul
 */
public class GestionExamen extends GestionInfos {

    private DAOExamen daoExamen;

    public GestionExamen(DAOExamen daoExam) {
        this.daoExamen = daoExam;
    }

    public ArrayList<Examen> getExamens(int idCour) {
        ArrayList<Examen> listeExamens = new ArrayList<Examen>();
        try {
            listeExamens = daoExamen.getExamFromCour(idCour);
        } catch (DAOExamenException daoEnsEx) {
            resultat = daoEnsEx.getMessage();
        } catch (DAOConnectionException daocEx) {
            resultat = daocEx.getMessage();
        }
        return listeExamens;
    }

    public ArrayList<Examen> getAllExamens(int idCour) {
        ArrayList<Examen> listeExamens = new ArrayList<Examen>();
        try {
            listeExamens = daoExamen.getAllExamFromCour(idCour);
        } catch (DAOExamenException daoEnsEx) {
            resultat = daoEnsEx.getMessage();
        } catch (DAOConnectionException daocEx) {
            resultat = daocEx.getMessage();
        }
        return listeExamens;
    }

    public void createExamen(HttpServletRequest request, Integer id) {
        String idCours = getValeurChamp(request, SELECT_NOM_COURS);
        String nomExamen = getValeurChamp(request, CHAMP_INTITULE);
        try {
            traiterNomExamen(nomExamen);
            if (erreurs.isEmpty()) {
                daoExamen.createCourExam(Integer.parseInt(idCours), nomExamen);
                resultat = "L'examen a bien été crée et associé au cours ";
            }
        } catch (DAOExamenException daoEx) {
            resultat = daoEx.getMessage();
        } catch (DAOConnectionException daocEx) {
            resultat = daocEx.getMessage();
        }
    }

    public void deleteExamen(HttpServletRequest request, Integer id) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }

    private void traiterNomExamen(String nomExamen) {
        if (nomExamen != null) {
            if (nomExamen.matches("[0-9]+")) {
                setErreur(CHAMP_INTITULE, "Veuillez saisir des caractères pour le nom d'examen.");
            }
        } else {
            setErreur(CHAMP_INTITULE, "Veuillez saisir un nom d'examen.");
        }
    }
}
